home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.io.Serializable;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.EventObject;
- import javax.swing.JEditorPane;
- import javax.swing.event.HyperlinkEvent;
- import javax.swing.event.HyperlinkEvent.EventType;
- import javax.swing.text.AttributeSet;
- import javax.swing.text.BadLocationException;
- import javax.swing.text.DefaultStyledDocument;
- import javax.swing.text.Document;
- import javax.swing.text.Element;
- import javax.swing.text.JTextComponent;
- import javax.swing.text.html.HTML.Attribute;
- import javax.swing.text.html.HTML.Tag;
-
- public class HTMLEditorKit$LinkController extends MouseAdapter implements Serializable {
- protected void activateLink(int var1, JEditorPane var2) {
- this.activateLink(var1, var2, -1, -1);
- }
-
- void activateLink(int var1, JEditorPane var2, int var3, int var4) {
- Document var5 = ((JTextComponent)var2).getDocument();
- if (var5 instanceof HTMLDocument) {
- HTMLDocument var6 = (HTMLDocument)var5;
- Element var7 = ((DefaultStyledDocument)var6).getCharacterElement(var1);
- AttributeSet var8 = var7.getAttributes();
- AttributeSet var9 = (AttributeSet)var8.getAttribute(Tag.A);
- String var10 = var9 != null ? (String)var9.getAttribute(Attribute.HREF) : null;
- HyperlinkEvent var11 = null;
- if (var10 != null) {
- var11 = this.createHyperlinkEvent(var2, var6, var10, var9);
- } else if (var3 >= 0 && var4 >= 0) {
- Object var12 = var8.getAttribute(Attribute.USEMAP);
- if (var12 != null && var12 instanceof String) {
- Map var13 = var6.getMap((String)var12);
- if (var13 != null) {
- Rectangle var14;
- try {
- var14 = ((JTextComponent)var2).modelToView(var1);
- Rectangle var15 = ((JTextComponent)var2).modelToView(var1 + 1);
- if (var14 != null && var15 != null) {
- var14.union(var15);
- }
- } catch (BadLocationException var16) {
- var14 = null;
- }
-
- if (var14 != null) {
- AttributeSet var18 = var13.getArea(var3 - var14.x, var4 - var14.y, var14.width, var14.height);
- if (var18 != null) {
- var10 = (String)var18.getAttribute(Attribute.HREF);
- if (var10 != null) {
- var11 = this.createHyperlinkEvent(var2, var6, var10, var9);
- }
- }
- }
- }
- }
- }
-
- if (var11 != null) {
- var2.fireHyperlinkUpdate(var11);
- }
- }
-
- }
-
- HyperlinkEvent createHyperlinkEvent(JEditorPane var1, HTMLDocument var2, String var3, AttributeSet var4) {
- URL var5;
- try {
- URL var6 = var2.getBase();
- var5 = new URL(var6, var3);
- if (var3 != null && "file".equals(var5.getProtocol()) && var3.startsWith("#")) {
- String var7 = var6.getFile();
- String var8 = var5.getFile();
- if (var7 != null && var8 != null && !var8.startsWith(var7)) {
- var5 = new URL(var6, var7 + var3);
- }
- }
- } catch (MalformedURLException var9) {
- var5 = null;
- }
-
- Object var10 = null;
- if (!var2.isFrameDocument()) {
- var10 = new HyperlinkEvent(var1, EventType.ACTIVATED, var5, var3);
- } else {
- String var12 = var4 != null ? (String)var4.getAttribute(Attribute.TARGET) : null;
- if (var12 == null || var12.equals("")) {
- var12 = "_self";
- }
-
- var10 = new HTMLFrameHyperlinkEvent(var1, EventType.ACTIVATED, var5, var3, var12);
- }
-
- return (HyperlinkEvent)var10;
- }
-
- public void mouseClicked(MouseEvent var1) {
- JEditorPane var2 = (JEditorPane)((EventObject)var1).getSource();
- if (!((JTextComponent)var2).isEditable()) {
- Point var3 = new Point(var1.getX(), var1.getY());
- int var4 = ((JTextComponent)var2).viewToModel(var3);
- if (var4 >= 0) {
- this.activateLink(var4, var2, var1.getX(), var1.getY());
- }
- }
-
- }
- }
-